package com.zhongwang.mms.module.purchase.model;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

@Data
public class PurWarQueryModel {

    /**
     * 主键自增
     */
    @ExcelIgnore
    private Integer odrId;

    /**
     * 外购件：出库编码：PCK+年月日
     */
    @ExcelIgnore
    private String odrCode;

    /**
     * 1是入库（采购）,2是出库（领料）
     */
    @ExcelIgnore
    private Integer odrType;

    /**
     * 红单标识：0是正常单据，1是红冲单据
     */
    @ExcelIgnore
    private Integer odrRedFlag;

    /**
     * 串料单标识
     * 0是非串料单,1是串
     */
    @ExcelIgnore
    private Integer odrChangeFlag;

    /**
     * 调拨单标识
     * 0是非调拨单,1是调拨
     */
    @ExcelIgnore
    private Integer odrReqFlag;

    /**
     * 出入库/冲单日期
     */
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    private Date odrDate;

    /**
     * 领料人
     */
    @ExcelProperty(value = "领料人", index = 16)
    private String odrTakePerson;

    /**
     * 备注
     */
    @ExcelIgnore
    private String odrRemark;

    /**
     * 制单日期
     */
    @ExcelProperty(value = "制单日期", index = 13)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date odrMakeDate;

    /**
     * 领料车间，领料使用
     */
    @ExcelIgnore
    private Integer odrTakeWorkshopId;

    /**
     * 制单人
     */
    @ExcelIgnore
    private Integer odrMakePersonId;

//出入库明细：
    /**
     * 主键自增
     */
    @ExcelIgnore
    private Integer odaId;

    /**
     * "外键：冲单替换的出入库单数据
     */
    @ExcelIgnore
    private Integer odaRushId;

    /**
     * 外键依赖出入库单主表
     */
    @ExcelIgnore
    private Integer odaOdrId;

    /**
     * 1是入库（采购）,2是出库（领料）
     */
    @ExcelIgnore
    private Integer odaType;

    /**
     * 项目号
     */
    @ExcelProperty(value = "项目编号", index = 7)
    private String odaProCode;

    /**
     * 项目名
     */
    @ExcelProperty(value = "项目名称", index = 8)
    private String odaProName;

    /**
     * 物料编码：本系统编码
     */
    @ExcelIgnore
    private String odaMatCode;

    /**
     * 物料描述
     */
    @ExcelProperty(value = "物料描述", index = 1)
    private String odaMatDesc;

    /**
     * 数量
     */
    @ExcelProperty(value = "数量", index = 3)
    private Double odaNum;

    /**
     * 数量单价
     */
    @ExcelProperty(value = "单价", index = 5)
    private Double odaNumPrice;

    /**
     * 仓库内区位
     */
    @ExcelProperty(value = "区位", index = 11)
    private String odaPosition;

    /**
     * 箱号
     */
    @ExcelProperty(value = "箱号", index = 12)
    private String odaCaseNo;

    /**
     * 仓库外键
     */
    @ExcelIgnore
    private Integer odaWhiId;

    /**
     * 数量单位
     */
    @ExcelProperty(value = "单位", index = 4)
    private String odaNumUnit;

    /**
     * 总金额
     */
    @ExcelProperty(value = "金额", index = 6)
    private Double odaTotalPrice;

    /**
     * 品牌
     */
    @ExcelIgnore
    private String odaBrand;

    /**
     * 备注
     */
    @ExcelIgnore
    private String odaRemark;

    /**
     * 记账日期
     */
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    private Date odaBookkeepingDate;

    /**
     * 特殊说明
     */
    @ExcelIgnore
    private String odaSpec;

    /**
     * 回货日期
     */
    @ExcelIgnore
    private String odaBackDate;

    /**
     * SAP物料编码
     */
    @ExcelProperty(value = "SAP物料编码", index = 2)
    private String odaSapCode;

    /**
     * 跟踪号
     */
    @ExcelProperty(value = "跟踪号", index = 9)
    private String odaTrackCode;

    /**
     * 红冲标识：0：蓝字 1：被红冲 2:红冲（新生成的）
     * 只有0是正常的，在出入库查询页面显示的||
     */
    @ExcelIgnore
    private Integer odaRedFlag;

    /**
     * 红冲时间
     */
    @ExcelIgnore
    private Date odaRedDate;

    /**
     * 红冲人员
     */
    @ExcelIgnore
    private Integer odaRedUserId;

    /**
     * 重量单价
     */
    @ExcelIgnore
    private Double odaWeightPrice;

    /**
     * 领用类型
     */
    @ExcelIgnore
    private String odaTakeType;

    /**
     * 外键：调拨时记录出库仓
     */
    @ExcelIgnore
    private Integer odaOutWhiId;

    /**
     * 外键：调拨时记录入库仓
     */
    @ExcelIgnore
    private Integer odaInWhiId;

    /**
     * 用来记录来自哪个库存数据，外键：依赖库存表ID
     */
    @ExcelIgnore
    private Integer odaOutItyId;

    /**
     * user表
     * 主键
     */
    @ExcelIgnore
    private Integer id;

    /**
     * user表
     * 姓名
     * //制单人ID对应USER表的NAME
     */
    @ExcelProperty(value = "制单人", index = 14)
    private String name;

    /**
     * dept表
     * 部门名称
     * //领料车间ID对应dept表的depName
     */
    @ExcelProperty(value = "领料部门", index = 15)
    private String depName;

//新建的字段：

    /**
     * 虚拟字段，页面显示使用：
     * 仓库名称
     */
    @ExcelProperty(value = "仓库", index = 10)
    private String whiName;

    /**
     * 虚拟字段，检索用
     * 单据类型
     */
    @ExcelIgnore
    private Integer billType;

    /**
     * 虚拟字段，页面显示使用：
     * 单据类型
     */
    @ExcelProperty(value = "单据类型", index = 0)
    private String billTypeText;

    /**
     * 虚拟字段，页面显示使用：
     * 制单人
     */
    @ExcelIgnore
    private String odrMakePerson;

    /**
     * 虚拟字段，检索用
     * 制单开始日期
     */
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    private Date pStartDate;

    /**
     * 虚拟字段，检索用
     * 制单结束日期
     */
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    private Date pEndDate;

    /**
     * 查询字段，页面查询使用：物料信息
     */
    @ExcelIgnore
    private String odaMatAll;

    /**
     * 出入库类型
     */
    @ExcelIgnore
    private Integer inOutType;

    /**
     * 临时表名
     */
    @ExcelIgnore
    private String tempTableName;
    /**
     * 访问来源
     */
    @ExcelIgnore
    private String mode;
    /**
     * 临时表前多少条数据
     */
    @ExcelIgnore
    private Integer topCount;
    /**
     * 临时表不包含的前多少条数据
     */
    @ExcelIgnore
    private Integer notHaveTopCount;

    @ExcelIgnore
    private Integer ityStockType;
    /**
     * 机械备件库类型
     */
    @ExcelIgnore
    private String odaRemarkType;
    /**
     * 合同编号
     */
    @ExcelIgnore
    private String contractNo;
}
